﻿<Window x:Class="DataBinding.BindToObjectDataProvider"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="BindToObjectDataProvider" Height="450" Width="400"
    xmlns:data="clr-namespace:StoreDatabase;assembly=StoreDatabase" 
    >
  <Window.Resources>
    <ObjectDataProvider ObjectType="{x:Type data:StoreDb}"                         
                       MethodName="GetProductsSlow" x:Key="products" IsAsynchronous="True"></ObjectDataProvider>
  </Window.Resources>
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="*"></RowDefinition>
      <RowDefinition Height="Auto"></RowDefinition>
      <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>

    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
      </Grid.RowDefinitions>

      <TextBlock Margin="5">Wait for it ...</TextBlock>
      <ListBox Grid.Row="1" Name="lstProducts" Margin="5" DisplayMemberPath="ModelName"
                ItemsSource="{Binding Source={StaticResource products}}" ></ListBox>

    </Grid>

    <GridSplitter Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" ResizeBehavior="PreviousAndNext"
                          
              Height="5"
    ></GridSplitter>
    <Border Grid.Row="2" Padding="7" Margin="7" Background="LightSteelBlue">
      <Grid DataContext="{Binding ElementName=lstProducts, Path=SelectedItem}">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="Auto"></ColumnDefinition>
          <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto"></RowDefinition>
          <RowDefinition Height="Auto"></RowDefinition>
          <RowDefinition Height="Auto"></RowDefinition>
          <RowDefinition Height="Auto"></RowDefinition>
          <RowDefinition Height="*"></RowDefinition>
        </Grid.RowDefinitions>

        <TextBlock Margin="7">Model Number:</TextBlock>
        <TextBox Margin="5" Grid.Column="1" Text="{Binding Path=ModelNumber}"></TextBox>
        <TextBlock Margin="7" Grid.Row="1">Model Name:</TextBlock>
        <TextBox Margin="5" Grid.Row="1" Grid.Column="1" Text="{Binding Path=ModelName}"></TextBox>
        <TextBlock Margin="7" Grid.Row="2">Unit Cost:</TextBlock>
        <TextBox Margin="5" Grid.Row="2" Grid.Column="1" Text="{Binding Path=UnitCost}"></TextBox>
        <TextBlock Margin="7,7,7,0" Grid.Row="3">Description:</TextBlock>
        <TextBox Margin="7" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" 
                 TextWrapping="Wrap" VerticalScrollBarVisibility="Visible" Text="{Binding Path=Description}"></TextBox>


      </Grid>
    </Border>
  </Grid>
</Window>
